1
Scegliere le righe da mantenere
DSAI2202Lab 7: Reasoning Across Relationships

Il registro di UniLearn e l'LMS non contengono gli stessi ID studente. Il team ha bisogno di diversi report, ciascuno con una risposta diversa alla domanda «Quali righe di origine devono apparire?»

Riutilizzare il database del Lab 6

Se hai già eseguito lab6_7_setup.sql nel Lab 6, conserva quei dati. In caso contrario, apri in pgAdmin il file di setup condiviso fornito dal tuo tutor ed eseguilo una volta. Seleziona lab6_7 in ogni nuova connessione di Query Tool.

Inizia con il join che conosci

  1. Esamina students e lms_roster: 22 ID del registro e 6 ID dell'LMS.
  2. Esegui l'INNER JOIN della regola di corrispondenza del Lab 6.
  3. Individua i quattro ID presenti in entrambe le fonti.
  4. Spiega perché questo risultato non può essere un elenco completo di nessuna delle due fonti.

Cinque richieste di report

Elenca gli account condivisi; mantieni ogni studente del registro; mantieni ogni account LMS; riconcilia entrambe le fonti; genera le opzioni studente–corso. Scriverai query INNER, LEFT, RIGHT, FULL e CROSS JOIN per queste richieste.

✍️ Prevedi il contesto mancante
S103 è registrato ma non ha un account LMS. S901 è importato nell'LMS ma è assente dal registro. Dove collocheresti ciascuno in un report completo?
Account condivisi
SET search_path TO lab6_7;

SELECT s.student_id AS registry_id, s.student_name,
       r.student_id AS lms_id, r.lms_name
FROM students AS s
INNER JOIN lms_roster AS r
  ON s.student_id = r.student_id
ORDER BY s.student_id;
Controlla gli ID abbinati

Quattro righe: S101, S102, S105 e S121. Ogni ID è univoco in entrambe le tabelle, quindi ogni coppia abbinata appare una sola volta. Questo report contiene solo gli account condivisi.

Uma (S121) ha un account LMS anche se non ha iscrizioni. Una corrispondenza tra account non prova la partecipazione a un corso.